package com.ruoyi.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.domain.Partyclass;

/**
 * partyclassService接口
 * 
 * @author ya
 * @date 2025-07-11
 */
public interface IPartyclassService extends IService<Partyclass>
{

    /**
     * 视频类型查询视频列表
     */
    public List<Partyclass> selectPartyclassByType(int type);

    /**
     * 查询partyclass
     * 
     * @param id partyclass主键
     * @return partyclass
     */
    public Partyclass selectPartyclassById(Long id);

    /**
     * 查询partyclass列表
     * 
     * @param partyclass partyclass
     * @return partyclass集合
     */
    public List<Partyclass> selectPartyclassList(Partyclass partyclass);

    /**
     * 新增partyclass
     * 
     * @param partyclass partyclass
     * @return 结果
     */
    public int insertPartyclass(Partyclass partyclass);

    /**
     * 修改partyclass
     * 
     * @param partyclass partyclass
     * @return 结果
     */
    public int updatePartyclass(Partyclass partyclass);

    /**
     * 批量删除partyclass
     * 
     * @param ids 需要删除的partyclass主键集合
     * @return 结果
     */
    public int deletePartyclassByIds(Long[] ids);

    /**
     * 删除partyclass信息
     * 
     * @param id partyclass主键
     * @return 结果
     */
    public int deletePartyclassById(Long id);
    
    /**
     * 获取指定类型的最大排序值
     * 
     * @param type 视频类型
     * @return 最大排序值
     */
    public int selectMaxSortOrderByType(int type);
    
    /**
     * 将指定类型下排序值小于给定值的记录的排序值加1
     * 
     * @param type 视频类型
     * @param sortOrder 排序值阈值
     */
    public void incrementSortOrderForTypeLessThan(int type, int sortOrder);
    
    /**
     * 查找指定类型下排序值刚好小于给定值的记录
     * 
     * @param type 视频类型
     * @param sortOrder 排序值
     * @return 记录对象
     */
    public Partyclass selectPreviousPartyclass(int type, int sortOrder);
    
    /**
     * 查找指定类型下排序值刚好大于给定值的记录
     * 
     * @param type 视频类型
     * @param sortOrder 排序值
     * @return 记录对象
     */
    public Partyclass selectNextPartyclass(int type, int sortOrder);
}
